package com.star.mentor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.star.mentor.dto.EvaluationDTO;
import com.star.mentor.dto.MentorEvaluationPageWxmentorDTO;
import com.star.mentor.entity.MentorEvaluation;
import com.star.mentor.vo.MentorEvaluationPageWxmentorVO;

import java.util.List;

/**
 * 导师评估艺人 服务类
 *
 * @author yangzj
 */
public interface MentorEvaluationService extends IService<MentorEvaluation> {

    /**
     * 给作品分配导师
     *
     * @param starId 艺人ID
     * @param styles 样式
     */
    void allocation(Long starId, List<String> styles);

    /**
     * 分配还没分配过导师的学员
     */
    void allocationNotEvaluation();

    /**
     * 清空未评估的
     *
     * @param evaluationId 评估ID
     */
    void deleteNotEvaluation(Long evaluationId);

    /**
     * 导师评估
     *
     * @param dto    入参
     * @param userId 用户ID
     */
    void evaluation(EvaluationDTO dto, Long userId);

    /**
     * 禁用规则时，结算学员分数
     *
     * @param evaluationId 评估ID
     */
    void disableEvaluation(Long evaluationId);

    /**
     * 更新是否关注
     *
     * @param starId    艺人ID
     * @param isCollect 是否关注
     * @param userId    用户ID
     */
    void updateCollect(Long starId, Boolean isCollect, Long userId);

    /**
     * 更新已读
     *
     * @param starId 艺人ID
     * @param userId 用户ID
     */
    void updateRead(Long starId, Long userId);

    /**
     * 存在
     *
     * @param evaluationId 评价ID
     * @return boolean
     */
    boolean exists(Long evaluationId);

    /**
     * 分页-微信小程序（导师端）
     *
     * @param dto 入参
     * @return {@link IPage}<{@link MentorEvaluationPageWxmentorVO}>
     */
    IPage<MentorEvaluationPageWxmentorVO> pageWxmentor(MentorEvaluationPageWxmentorDTO dto);
}
